/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SimuladorGPS;

import Rutas.Ruta;
import Rutas.Unidad;
import Rutas.Paradero;
import com.thoughtworks.xstream.XStream;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 *
 * @author Zoila
 */
public class SimBus extends Thread {
    private boolean continuar = true;

    private int numBuses=0;
    private int numRutas=0;
    
    private Ruta ruta= new Ruta();
    private Unidad bus= new Unidad();
   // metodo para poner el boolean a false.
   public SimBus(int buses, int ruta){
       numBuses=buses;
       numRutas=ruta;
       escribirPosicion("Ruta");
       leerPosicion();
   }
   public void detenenSimBus()
   {
      continuar=false;
   }

   // Metodo del hilo
   public void run()
   {
      // mientras continuar ...
      while (continuar/*||numRutas>0*/)
      {
         //simularRecorridoBus();
         //pasaPorNodo();
         escribirPosicion("Ruta");//+numRutas--);
         //leerPosicion();
      } 
   } 
   
   public void leerPosicion () {
       Ruta ruta= new Ruta();
       String nombre ="Ruta"+ this.numRutas +"/RutaOriginal.xml";
       try {
           XStream xs = new XStream();
           FileReader fr = new FileReader(nombre);
           ruta= (Ruta)xs.fromXML(fr);
           fr.close();
        } catch (IOException e) {
           System.out.println(e.toString());
	}
      /* System.out.println(ruta.getNombre());
       for (Paradero p:ruta.getListaParaderos()){
           System.out.println((int)p.getIdParadero()+" - "+p.getIdParadero());
       }*/
   }
   
   public void escribirPosicion (String arch){
       Ruta original= new Ruta();
       arch=arch+numRutas;
       File f = new File(arch);
       f.mkdir();
       int numBuses=this.numBuses;
       
       //ESCRIBE LA RUTA ORIGINAL
       try {
            XStream xstream = new XStream();
            String nombre ="";
            nombre=arch+"/RutaOriginal"+".xml";
            FileWriter fw= new FileWriter(nombre);
            String temp= xstream.toXML(original);  
            fw.write(temp);
            fw.close();
       }
       catch(IOException e){
           System.out.println(e.toString());
       }
       
       //ESCRIBE LAS RUTAS RECORRIDAS
       while (numBuses>0) {
            try {
                XStream xstream = new XStream();
                String nombre ="";
                Ruta aux= new Ruta(1);
                Ruta ruta = aux.generaRutaInc(original);
                nombre =arch+"/RutaRecorrida"+numBuses+".xml";
                FileWriter fw= new FileWriter(nombre);
                String temp= xstream.toXML(ruta);      
                fw.write(temp);
                fw.close();
                numBuses--;
            } catch (IOException e) {
                System.out.println(e.toString());
            }
      }
   }
   
}
